<?php

class AnotacaoService extends Model {

    /**
     * @var AnotacaoDao
     */
    private $anotacaoDao;
    /**
     * @var UsuarioService
     */
    private $usuarioService;

    public function injectDependencies() {
        $this->anotacaoDao = AnotacaoDao::getInstance();
        $this->usuarioService = UsuarioService::getInstance();
    }

    public function findByUser($IDUsuario) {
        return $this->anotacaoDao->findByUser($IDUsuario);
    }

    public function findById($IDAnotacao) {
        return $this->anotacaoDao->findById($IDAnotacao);
    }

    public function save($ArDados) {
        $IDUsuario = Dracosys::getLoggedUser()->getIDUsuario();
        if( $this->anotacaoDao->save($IDUsuario, $ArDados) ) {
            $this->usuarioService->reload();
            return true;
        }
        return false;
    }

    public function isMine($IDAnotacao) {
        $Anotacao = $this->findById($IDAnotacao);
        if( !$Anotacao ) {
            return false;
        }
        return $Anotacao->getIDUsuario() == Dracosys::getLoggedUser()->getIDUsuario();
    }

    public function update($ArDados) {
        $IDUsuario = Dracosys::getLoggedUser()->getIDUsuario();
        if( $this->anotacaoDao->update($IDUsuario, $ArDados) ) {
            $this->usuarioService->reload();
            return true;
        }
        return false;
    }

    public function delete($IDAnotacao) {
        if( $this->anotacaoDao->delete($IDAnotacao) ) {
            $this->usuarioService->reload();
            return true;
        }
        return false;
    }

}

?>
